Only create a class shortcut controller if we have shortcuts
authorMatthias Clasen <mclasen@redhat.com>
Sun, 15 Mar 2020 22:24:52 +0000 (18:24 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 19 Mar 2020 03:00:51 +0000 (23:00 -0400)
No point in creating objects that just hold empty lists.

gtk/gtkwidget.c

index 7826d1a53419fcee4e2d8fd441d0eba6a723ba60..41e0815286e4bddf15229dd2d2b6710980892b03 100644 (file)
@@ -2467,9 +2467,12 @@ gtk_widget_init (GTypeInstance *instance, gpointer g_class)
   if (layout_manager_type != G_TYPE_INVALID)
     gtk_widget_set_layout_manager (widget, g_object_new (layout_manager_type, NULL));
 
-  controller = gtk_shortcut_controller_new_for_model (G_LIST_MODEL (GTK_WIDGET_CLASS (g_class)->priv->shortcuts));
-  gtk_event_controller_set_name (controller, "gtk-widget-class-shortcuts");
-  gtk_widget_add_controller (widget, controller);
+  if (g_list_model_get_n_items (G_LIST_MODEL (GTK_WIDGET_CLASS (g_class)->priv->shortcuts)) > 0)
+    {
+      controller = gtk_shortcut_controller_new_for_model (G_LIST_MODEL (GTK_WIDGET_CLASS (g_class)->priv->shortcuts));
+      gtk_event_controller_set_name (controller, "gtk-widget-class-shortcuts");
+      gtk_widget_add_controller (widget, controller);
+    }
 }
 
 /**